/**
 * @author zyj
 * @date 2022年05月17日 14:59
 */
public interface A<T> {

    boolean add(T t);
    T print();
}

/**
 * 实现类也是一个泛型类
 * @param <T>
 */
class B<T> implements A<T>{
    @Override
    public boolean add(T t) {
        return false;
    }

    @Override
    public T print() {
        return null;
    }
}

/**
 * 实现类是泛型，父接口的泛型类型给定
 * @param <T>
 */
class C<T> implements A<String>{

    @Override
    public boolean add(String s) {
        return false;
    }

    @Override
    public String print() {
        return null;
    }
}

/**
 * 实现类是非泛型类型，实现的接口给定类型
 */
class D implements A<String>{

    @Override
    public boolean add(String s) {
        return false;
    }

    @Override
    public String print() {
        return null;
    }
}
